iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0
Modern Web

新手友善園區-如何架設人生第一個網站系列 第 12

Day-12 版本控制的基礎:Git

  • 分享至 

  • xImage
  •  

在你開始寫程式、建構網站或進行任何數位創作時,你可能會遇到一個問題:如何管理這些不斷更新、修改的內容?你需要一種工具來幫助你追蹤每個版本的變更,這就是版本控制的工作,而Git是目前最流行的版本控制工具之一。今天,我們會深入了解Git,讓你一步步搞清楚它是怎麼幫助我們管理程式碼的,為什麼它這麼受歡迎,以及它和其他工具有什麼不同。

什麼是Git?

在寫程式、編輯文件或打報告時,應該都有一個習慣,就是每改完一個版本會存成一個新的檔案,像是112-01-02專題_初版112-01-03專題_二版112-06-06專題_終版112-06-07專題_最終版112-06-10專題_最最終版112-06-15專題_最最最終版,這樣的做法方便你回到之前的版本,不會因為改錯了而沒辦法恢復。這其實就是版本控制的概念,讓我們能夠記錄一個專案中的不同版本變化。

但是,隨著專案越來越複雜、修改越來越多,光靠這樣手動存檔的方法會變得相當混亂,而且如果多個人一起合作開發時,不同人同時修改同一個檔案時很容易出錯。因此,專門的版本控制工具就派上用場,這類工具能幫我們自動記錄每次的變更,並且可以隨時回溯到某個特定版本,也方便多人協作。

Git 是一個版本控制系統,用來管理你的專案中的版本。這個系統可以記錄每次修改的變化,並且允許你隨時切換到不同的歷史版本。它能幫助你追蹤程式碼的變動、協作處理衝突、還原錯誤變更。

Git 主要的功能

1.追蹤變更:Git會幫助你追蹤每次對檔案的修改,記錄下誰在什麼時間做了什麼變更。你可以查看、回退到任何一次提交過的變更版本。
2.分支管理:你可以創建不同的分支來實驗新功能,互不干擾。當你覺得實驗完成了,Git允許你將這些變更合併回主線(或其他分支)。
3.協作功能:Git非常適合團隊合作。每個開發者可以在自己的分支上進行工作,然後將變更提交到中央存儲庫(例如GitHub,這部分明天會講),進行整合。
4.恢復歷史版本:發現某次變更出現錯誤?沒問題!Git允許你快速回退到上一個穩定版本。

這邊簡單解釋一下Git的儲存方式:
假設你有一個資料夾
1版:新增資料index.html, style.css, app.js
2版:只修改style.css
3版:你新增了一個檔案about.html,並且index.html沒有變動
在 Git 中的儲存方式:
1版:Git 會儲存三個檔案的完整資料。
2版:Git 只會儲存style.css的差異,並且index.htmlapp.js會指向版本 1。
3版:Git 會新增about.html的完整內容,同時index.html, app.jsstyle.css會分別指向之前已經儲存的版本或差異。

這意味著,Git 儲存的是每個檔案的變化,而不是每次都儲存整個檔案的完整副本。這樣做可以極大地節省空間,並且可以讓版本控制系統高效運作。

分散式是什麼意思?它跟集中式的差別?

所謂的分散式,意思是每個使用 Git 的人都會有一個完整的版本庫(repository),也就是專案的所有歷史記錄和文件。這跟集中式的版本控制系統(如 SVN)不同,在集中式系統中,所有專案的歷史記錄都存在一個中央伺服器上,所有人都要連到這個伺服器才能查看或修改專案。

但在 Git 中,因為每個人都有完整的版本庫,即使沒有網路,或者伺服器壞掉了,你還是可以繼續工作,等到有網路時再把你的變更同步(push)到別人的版本庫中。所以,分散式讓團隊合作更靈活,即使有人因為網路問題無法聯網,工作也不會停擺。

Git 為什麼這麼流行

Git之所以流行,是因為它解決了很多傳統版本控制系統的問題,同時提供了強大的功能和靈活性。

  1. 高效處理分支(Branch)
    分支是 Git 裡一個非常強大的功能。它允許你在一個專案中進行多個平行的開發,互不干擾。想像一下,你有一個主要版本(通常叫 main 或 master 分支),但是你想要嘗試一個新的功能,卻不想影響主版本,這時候你可以創建一個新的分支,然後在這個分支上進行所有實驗性的修改。
    分支的好處是什麼呢?它可以讓你同時進行不同的開發任務,比如你可以在一個分支上開發新功能,另一個分支上修復 bug。等到你確認新功能沒問題後,再**合併(merge)**回主分支。這樣可以確保主分支始終保持穩定。

  2. 分散式架構:這是Git的關鍵優勢之一,讓開發者即使在無網絡時也能繼續工作。每個人都擁有完整的歷史版本,這樣不依賴於中央伺服器,減少了單點故障的風險。

  3. 速度與效能:Git能快速處理大型專案中的大量文件和變更,這在現代軟體開發中非常有用。

  4. 開源與免費:Git是一個免費的開源工具,全球數以百萬計的開發者和公司使用它來管理程式碼。

Git 不是 GitHub

Git是一個工具GitHub則是一個平台,專門用來託管你的 Git 版本庫。簡單來說,GitHub 是基於 Git 的一個雲端服務,幫你保存、分享你的 Git 專案,使得團隊之間可以方便地協作,特別是在遠端工作的情況下。

結語

Git 是現今開發者最常使用的版本控制工具,它的分散式架構、靈活的分支功能,以及龐大的社群支援,使它在各種專案開發中變得不可或缺。
今天只是很簡單的入門介紹,不知道大家了解一些以後會不會想去學Git,這裡介紹一本書為你自己學Git,這本書講解的很細緻,我很喜歡,我也是看他的文章才慢慢瞭解Git原來是這樣儲存的,雖然初學者可能需要花些時間學習,但一旦掌握了 Git,你會發現它能讓專案管理更加有效率、靈活且安全。


上一篇
Day-11 JavaScript 的資料處理:物件與 JSON
下一篇
Day-13 版本控制的平台:GitHub
系列文
新手友善園區-如何架設人生第一個網站19
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言